RockNES 0.54 - September, 12th 1998 =================================== -> The RockNES team: Fx3 : gyfay@convex.com.br Kritz : val@xcelco.on.ca NOTES : ====== 1) When a game seems to be blocked press ENTER key (as START) perhaps that will start the game, like Bionic Commando; 2) If you want to join xNes, let me know. Just mail me; 3) ANY info about AUTOFRAMESKIP and GCC switches to speed up the NES emulation would be great to us; 4) Tell me if PGCC really speeds up the emulation; 5) ANY PROBLEM AND I'LL STOP RockNES. --------------------------------------------------------------------------- #include -> RockNES. Copyright (c) 1997,1998 Gyfay Software. -> Nintendo is trademark of Nintendo. -> Neither Gyfay Software nor the author are affiliated with Nintendo nor advocate the piracy of Nintendo games. -> RockNES is freeware. You can to distribute it freely, as long as it is non-modified. Commercial ROMs *NEVER* can be packaged with this emu. -> When you use this software you do so at your own risk. The author is not responsible for any loss or damage resulting from the use or misuse of this software. -> If you do not agree with these terms delete this software now. Many games don't work correctly (or at all). Don't mail me case your favorite ROM doesn't work. --------------------------------------------------------------------------- I. Intro ======== -> xNes is/was a NES 8-bit emulator, now it calls RockNES. It was firstly wrote for DOS, but ported later to Linux and MacOS. Six months after the last release from Nicolas Hamel, it was resumed by me, Fx3. Only the DOS port will be updated for now, unless someone wants to port my emulator. -> The compatibility of RockNES grows version after version. The goal of RockNES is to be a great emu: fast, compatible and FREE. -> It was entirely write in C and compiled with DJGPP/Allegro 3.0. Versions >0.5x was compiled with PGCC (Pentium version of gcc). II. History : ============= Sorry I don't have the docs of older versions of RockNES :) If you'd like to update my compatibility list, go ahead an mail me. Version 0.54 - Fixed an error in ClearScreen() - now there is no 'Error in ClearScreen()' - Fixed sprite priority - sprites can go behind things now (For example, in Zelda when you walk up/down stairs) - Fixed mapper #2 bug - Only a few more ROMS work, some still don't - Fixed mapper #3 bug - All mapper #3 ROMS should work now - Fixed mapper #9 bug - Now, PunchOut looks much better, but no playable yet - Fixed a slight problem when you reset some ROMs - Changed the palette to the one Nesticle uses because it works/looks better - Changed the pallete around so that a border isn't shown around the screen - Added support for extended mappers #16+, no mappers implemented yet - Added a configuration file - Added a little text displayer (it pops up, when you reset, raise/lower the frame rate, etc..) - Some small optimizations, barely noticeable - Some bugs fixed in the Rd6502/Wr6502 functions - Player 2 support w/ redefinable settings for buttons - Don't show left 8 pixels of the screen [PPU flag] (Paperboy needed this flag working as well as others) - Don't show sprites in left 8 pixels of the screen [PPU flag] - An option to specify a ROM directory location in the configuration file Version 0.53 Release 3b : - Whops! Fixed a bug in the PPU (just play to see). Now, Ghosts'n Goblins works fine; - While keys '+' or '-' are pressed, the frameskip isn't changed. Just press a key one time to increase/decrease. Same to F5 (reset). Version 0.53 Release 3 : - Some changes in the sprite/BGM code; - The screen is correctly centered; - Maybe more games are working (like Power Blade 2) or with a bit less glitches (like Tetris from Tengen). Version 0.53 Release 2 : - Fixed a bug in the sprite code (sorry); - Some changes when writting to the PPU; - Some little changes in the main code. Version 0.53 : - Removed tons of unused variables; - Big clean of source code; - Fixed a bug in the PPU (background color, now Rockman 1 is okay); - Frameskip range set to 0-6 (default=2); - Fixed some bugs in the 6502 functions (Rd/Wr/loop); - Fixed a bug in the Mapper 7 (incorrect name table); - Fixed a bug in the Reset_Nes(); - Fixed the shutdown function (TrashMachine); - Fixed a bit the current graphic engine; - Screen is always centered in any video mode; - You can hide the .NES extension (ex: RockNES gamename OR gamename.NES); - 5-15% more faster (really?). Version 0.52 : - Compiled with PGCC (for Pentium processors); - Fixed bugs parsing command line switches; - More video resolutions, with all modes merged to -gfx switch. Version 0.51 : - Encapsulated xnes.dat (palette); - Added joystick support (4-buttons, player 1 only); - The emulator doesn't crash more when unable to initialise graphics modes; - Primitive GUI removed to be improved; - New resolutions, with auto detection improved (a bit faster); - Some changes in the messages. ---------------------------------------------------------------------------------------- Version 0.45 : - Speed up into the 6502 emulation core of Marat - fixed bug into the PPU memory - MMC 4 partially supported ( Mario2 is playable ) Version 0.40 : - Very more compatible ! - ModeX added - 8x16 Sprite fixed - Some fix in the xNes code - Big fix in the MMC 1 - Sprite Priority - Some fix in the MMC 9 - Some stupid bug in the xNes code removed - New Graphic engine reworked Version 0.30 : - Better Graphics - New graphic engine - MMC 9 added / VERY BUGGY ! - MMC 1 fixed - Fixed the 6502 - other things that I dont remember. III. What RockNES does : ===================== Currently: - The 6502, provided by Marat; - Sprites 8x8 and 8x16; - Trainer; - IO Ports; - Sprite flipping & mirroring; - Fake color palette (not from a real NES); - Scrollings; - Backed Battery; - Configuration File; - FULL MAPPERS....: 0 and 3; - PARTIAL MAPPERS.: 1,2,4,7,9,10 and 11. In the future: - Full GUI; - Full sound; - Lightgun support (with mouse?); - 6502 in ASM (not in C); - Real time save/load games (I must to adjust it for each loaded mapper); - Faster graphics engine (scanline based, not Name Table based); - Mappers working in full other than #0 and #3; - Addition of all mappers possible. The major speed bottleneck right now is the graphics engine it's rendering unnecesary information. It's going to have to be rewritten from scratch. This will also allow to write it as a scanline engine and not as a tile engine, which is requiered because that's the way the real NES works. IV. Contents from this ZIP file: ================================ readme.txt => This file. RockNES.exe => The executable. => NEVER ask me about commercial ROMs. I cannot provide them, so don't ask me how to find/dump, please! V. Hardware required : ====================== - Intel Pentium 166Mhz processor or higher; - MS-DOS 6.xx (Win9x recommended); - 8 MB of memory. I didn't tried it on 4 mb so... - VESA support (get Display Doctor from www.scitechsoft.com). I don't know the minimum... maybe: - 486 66Mhz, 8Mb RAM; - MS-DOS 6.xx (maybe 5.xx); - Color graphic card. => RockNES uses (by default) a VGA mode 320x200 to be more compatible with all videocards/monitors, but it's clipped. You can use a standard VGA graphics, ModeX, VESA or AUTODETECT. The best resolution is 320x240 VBE2 Linear (use -videocard 5 ). RockNES can autodetect your videoboard case you've any problem. VESA is faster than others video modes. => The RockNES >0.50 was (and'll be) compiled with PGCC (GCC Pentium version) to increase speed. At moment, I don't notice speed increase, but, it's okay. VI. To use it : =============== [USE RockNES AT YOUR OWN RISK !!] Syntax: rocknes -op1 -op2 ... -op80: -f x : Sets frame rate to x (default: 2). -b x : Forces the use of x as battery file. -p1 x : Forces input1: 1-KEYBOARD1, 2-JOYSTICK1, 3-GAMEPAD. -p2 x : Forces input2: 1-KEYBOARD2, 2-JOYSTICK2, 3-GAMEPAD. -gfx x : Forces a video resolution, x can be: * 0-6 320x240 modes * * AUTO modes * 0 - AUTODETECT 7 - 400x300 1 - VGA Mode 13h 8 - 512x384 2 - Mode-X 9 - 640x480 3 - VESA 1.x .. 4 - VESA 2.0 BANKED .. 5 - VESA 2.0 LINEAR .. 6 - VBE/AF .. During the execution: ESC to quit and back to command line; F12 to do a screenshot to xNES.pcx (temporarily disbaled); F5 to reset the virtual NES; '+' to increase Frame Rate (max=6); '-' to decrease Frame Rate (min=0). (while you keep a key pressed, the emulator will stay paused) VII. ROM file format supported : ================================ => RockNES supports only the iNES file format! To make sure, check the .NES extension. VIII. Greetings : ================= - Marat for his 6502 emulator (m6502.c); - All the person behind DJGPP; - Shawn for Allegro 3.0; - Y0SHI for his nestech.txt; - Loopy for his palette and help; - LoneWolf of Dragones, for his help with MMC 1 and 8x16 sprite. Special thanks : - Brad Oliver for his help; - Nicolas Hamel and David M. by the original source; - Roberto Rosario for his help; - All the old (and new) xNes (RockNES) team!!! IX. Contacts : ============== http://www.geocities.com/TimesSquare/Castle/2622/xnes.html //////////////////////////////////////////////////////////////////////////// If you disagree, delete this software now. eof